package com.pingan.generator.api.entity.mapper;

import java.util.List;
import java.util.Map;
import com.pingan.generator.api.entity.ColInfo;
import com.pingan.generator.api.entity.base.BaseMapper;

public interface ColInfoMapper extends BaseMapper<ColInfo>{
	
	/**
	 * 保存Object对象返回主键id
	 * @param info
	 */
	public void saveObject(ColInfo info);
	
	/**
	 * 根据条件查询
	 * @param interfaceId
	 */
	public List<ColInfo> getInfoByCondition(Map<String,Object> map);
	
	
	/**
	 * 获取接口下的所有字段键值
	 * @param url
	 * @return
	 */
	public List<ColInfo> getColNameList(String url);
	
	/**
	 * 查询api接口详情(正常接口最新的字段和废弃接口的字段)
	 * @param reqMap
	 * @return
	 */
    public List<Map<String,Object>> getApiDetail(Map<String,Object> reqMap);
    
    /**
     * 查询api接口详情(修改的接口中在确认时间和当前时间之间的废弃字段)
     * @param reqMap
     * @return
     */
    public List<Map<String,Object>> getApiDetailOther(Map<String,Object> reqMap);
    /**
     * 找出父节点下的所有参数
     * @param colFatherId
     * @return
     */
    public List<Map<String,Object>> findApiDetailById(Map<String,Object> reqMap);
    
    public List<Map<String,Object>> findApiDetailByIdOther(Map<String,Object> reqMap);
    /**
     * 检查元素是否对应上层父节点
     * @param colFatherId
     * @return
     */
    public int isExistFatherParam(long colFatherId);
    
    /**
     * 修改接口下所有字段状态为移除
     * @param paraMap
     * @return
     */
	public int updateStatus(Map<String,Object> paraMap);
	
	   /**
     * 修改接口下所有字段状态为移除
     * @param paraMap
     * @return
     */
	public int updateStatusById(Map<String,Object> paraMap);
	
	/**
	 * 获取入参或者回参集合
	 * @param paraMap
	 * @return
	 */
	public List<Map<String,Object>> getColDetailList(Map<String,Object> paraMap);
	
	/**
	 * 父节点改变修改子节点下面所有字段状态为移除状态
	 * @param paraMap
	 * @return
	 */
	public int updateStatusByFatherId(Map<String,Object> paraMap);
	
	/**
	 * 查询父节点下面字段所有子节点信息
	 * @param paraMap
	 * @return
	 */
	public List<ColInfo> getColInfoListByFatherId(Map paraMap);
	
	/**
	 * 根据父节点及col修改字段状态
	 * @param paraMap
	 * @return
	 */
	public int updateStatusByFatherIdAndCol(Map<String,Object> paraMap);
}
			